package com.york.tinyrpc.proto.proxy;

import java.lang.reflect.Proxy;

/**
 * 服务代理工厂
 * 根据RPC接口类型获取代理对象，依赖ServiceProxy代理
 */
public class ServiceProxyFactory {

    /**
     * 根据服务类获取代理对象
     *
     * @param serviceClass 接口类型
     * @return 接口类型的代理对象
     */
    public static <T> T getProxy(Class<T> serviceClass) {
        return (T) Proxy.newProxyInstance(serviceClass.getClassLoader(),
                new Class[]{serviceClass},
                new ServiceHandler());
    }
}